﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using WC.BL.BE;
using WC.BL.BCC;
using System.Collections.Generic;
using System.IO;

namespace WC.UI.WebApp
{
    public partial class Mensajes : System.Web.UI.Page
    {

        #region Metodos internos
        private void limpiarPopup()
        {
            txtTitulo.Text = string.Empty;
            txtFechaI.Text = string.Empty;
            txtFechaF.Text = string.Empty;
            txtMensaje.Text = string.Empty;
        }
        private void cargaGrilla()
        {
            //try
            //{
                List<MensajeBE> lst = MensajeBC.read(new MensajeBE(0, txtTituloMensaje.Text.Trim(), "",
                                                                txtFechaInicio.Text.Trim(), txtFechaFin.Text.Trim()));
                cgvMsj.DataSource = lst;
                cgvMsj.DataBind();
                Session["lst"] = lst;
            //}
            //catch (Exception ex)
            //{
            //    Session["Mensaje"] = ex.Message;
            //}
            //finally
            //{
            //   ((Main)Master).muestraMensajes();
            //}
        }
        private void guardarMensaje()
        {
            MensajeBE msj = null;


            if (((string)Session["Operacion"]).Equals("write"))
            {
                msj = new MensajeBE();
                msj.Titulo = txtTitulo.Text;
                msj.Mensaje = txtMensaje.Text;
                msj.Fechai = txtFechaI.Text;
                msj.Fechaf = txtFechaF.Text;
                MensajeBC.write(msj);

            }
            
        }
        #endregion

        protected void Page_Load(object sender, EventArgs e)
        {
            //Sirve para validar si el usuario es ADMIN
            if (!Page.IsPostBack)
            {
                try
                {
                    ((Main)Master).checkUser(true);
                    txtFechaInicio.Text = DateTime.Today.AddDays(-30).ToString("dd/MM/yyyy");
                    txtFechaFin.Text = DateTime.Today.ToString("dd/MM/yyyy");
                }
                catch { }
            }
        }

        protected void btnGrabarI_Click(object sender, EventArgs e)
        {
            try
            {
                if (!txtFechaF.Text.ToString().Equals("") &&
                    !txtFechaI.Text.ToString().Equals("") &&
                    !txtTitulo.Text.ToString().Equals("") &&
                    !txtMensaje.Text.ToString().Equals(""))
                {
                    if (((string)Session["operacion"]).Equals("editar"))
                    {
                        MensajeBE msj = (MensajeBE)Session["MensajeBE"];
                        
                        msj.Titulo = txtTitulo.Text;
                        msj.Mensaje = txtMensaje.Text;
                        msj.Fechai = txtFechaI.Text;
                        msj.Fechaf = txtFechaF.Text;
                        Session["Mensaje"] = MensajeBC.update(msj);
                        Session.Remove("operacion");
                        Session.Remove("MensajeBE");
                    }
                    else
                    {
                        MensajeBE msj = null;

                        msj = new MensajeBE();
                        msj.Titulo = txtTitulo.Text;
                        msj.Mensaje = txtMensaje.Text;
                        msj.Fechai = txtFechaI.Text;
                        msj.Fechaf = txtFechaF.Text;
                        Session["Mensaje"] = MensajeBC.write(msj);
                    }
                    List<MensajeBE> lst = null;
                    cgvMsj.DataSource = lst;
                    cgvMsj.DataBind();
                    Session["lst"] = lst;

                }
            }
            catch (Exception ex)
            {
                Session["Mensaje"] = ex.Message;
            }
            finally
            {

                ((Main)Master).muestraMensajes();
            }
        }
        
        protected void btnCancel_Click(object sender, EventArgs e)
        {

        }

        protected void btnMantArch_Click(object sender, ImageClickEventArgs e)
        {
           //

            string str = string.Empty;
            string script = string.Empty;
            script = "<script type='text/javascript'>" +
                      " window.open('MantArchivos.aspx','','width=450,height=310,top=50,left=250,status=no,resizable=no,scrollbars=yes','true')";
            script += "</script>";
            str = string.Format(script);
            ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "Mantenimiento de Archivos", str, false);
        }

        protected void ibtnAddMsj_Click(object sender, ImageClickEventArgs e)
        {
            this.limpiarPopup();
            Session["operacion"] = "crear";
            mpeMensajes.Show();
        }

        protected void cgvMsj_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            try
            {
                //if (txtTitulo.Text.Equals(""))
                {
                    int idx = Convert.ToInt32(e.CommandArgument);
                    List<MensajeBE> lst = (List<MensajeBE>)Session["lst"];
                    string mID = lst[idx].Mensaje_id.ToString();

                    MensajeBE msj = MensajeBC.read(int.Parse(mID));
                    txtTitulo.Text = msj.Titulo;
                    txtMensaje.Text = msj.Mensaje;
                    txtFechaI.Text = msj.Fechai;
                    txtFechaF.Text = msj.Fechaf;
                    Session["operacion"] = "editar";
                    Session["MensajeBE"] = msj;
                    mpeMensajes.Show();
                }
            }
            catch { }
        }

        protected void ibtnBuscar_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                cargaGrilla();
            }
            catch (Exception ex)
            {
                Session["Mensaje"] = ex.Message;
            }
            finally
            {
                ((Main)Master).muestraMensajes();
            }
        }
        protected void ibtnBuscar_Click(object sender, EventArgs e)
        {
            try
            {
                cargaGrilla();
            }
            catch (Exception ex)
            {
                Session["Mensaje"] = ex.Message;
            }
            finally
            {
                ((Main)Master).muestraMensajes();
            }
        }


    }
}
